public class Main {
    public int StrToInt(String str){
        /*如果这个字符串的0下标是正负号的话，就将这个正负号替换为0
        * 反正经过下面的那个表达式计算后 也不会改变 这个字符串转化为的数字 的值
        * 但是因为String类底层是一个final修饰的数组，不能改变
        * 所以就将这个字符串转为数组，然后再改变其下标的值*/
        char[] chs = str.toCharArray();
        if (str.isEmpty()){
            return 0;
        }
        //针对有正负号的情况
        int symbol = 1;
        if (chs[0] == '-'){
            symbol = -1;
            chs[0] = '0';
        }else if (chs[0] == '+'){
            symbol = 1;
            chs[0] = '0';
        }

        int sum = 0;
        for (int i = 0; i < chs.length; i++) {
            //如果这个下标的字符不是“1~9”，则说明不为纯数字。返回0
            if (chs[i] < '0' || chs[i] > '9'){
                sum = 0;
                break;
            }

            sum = sum*10 + chs[i] - '0';
        }
        return symbol*sum;
    }
}
